function flat(arr) {
  // 验证 arr 中，还有没有深层数组 [1,2,[3,4]]
  const isDeep = arr.some((item) => item instanceof Array);
  if (!isDeep) {
    return arr; // 已经是 flatern
  }
  const res = Array.prototype.concat.apply([], arr);
  return flat(res); // 递归
}

const res = [1, 2, [3, 4, [10, 20, [100, 200]]]];
console.log(flat(res));

// flat
function flatten(arr) {
  return arr.flat(Infinity);
}
console.log(flatten(res));
